
<!doctype html>
<html xml:lang="en" lang="en" dir="ltr">

<head>
    <title>Computer Science (CS) &lt; Illinois Institute of Technology</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="search" type="application/opensearchdescription+xml"
          href="/search/opensearch.xml" title="Catalog" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
    <link href="/favicon.ico" rel="shortcut icon" />
    <link rel="stylesheet" type="text/css" href="/css/reset.css" />
    <link rel="stylesheet" type="text/css" href="/fonts/font-awesome/font-awesome.min.css" />
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" type="text/css" href="/css/screen.css?v=2" media="screen" />
    <link rel="stylesheet" type="text/css" href="/css/handheld.css" />
    <link rel="stylesheet" type="text/css" href="/css/print.css" media="print" />
    <script type="text/javascript" src="/js/jquery.js"></script>
    <script type="text/javascript" src="/js/lfjs.js"></script>
    <script type="text/javascript" src="/js/lfjs_any.js"></script>
    <link rel="stylesheet" type="text/css" href="/js/lfjs.css" />
    <script type="text/javascript" src="/js/courseleaf.js"></script>
    <script type="text/javascript" src="/js/custom.js"></script>

</head>




<body>






<!--htdig_noindex-->
<div class="accessible noscript">
    <div class="accessible-menu">
        <ul>
            <li><a href="#content" rel="section">Skip to Content</a></li>
            <li><a href="/azindex/">AZ Index</a></li>
            <li><a href="/">Catalog Home</a></li>
            <li><a href="http://www.iit.edu">Institution Home</a></li>
        </ul>
    </div>
</div>
<!--/htdig_noindex-->

<!--htdig_noindex-->
<div id="header">
    <div class="wrap clearfix">
        <div id="hdr-top" class="clearfix">
            <a id="hamburger" href="#"><span>Menu</span></a>
            <a id="search-icon" href="#search-mob"><span>Search</span></a>
        </div>
        <div id="hdr-right">
            <ul id="hdr-nav">
                <li><a href="http://alumni.iit.edu/" target="_blank">Alumni</a></li>
                <li><a href="https://alumni.iit.edu/give" target="_blank">Give to Illinois Tech</a></li>
                <li><a href="http://web.iit.edu/directory/" target="_blank">Directories</a></li>
                <li><a href="http://web.iit.edu/mediaroom/" target="_blank">Media</a></li>
                <li><a href="http://my.iit.edu/" target="_blank">myIIT</a></li>
            </ul>
        </div> <!-- end hdr-right -->
        <div id="logo">
            <a href="/">Illinois Institute of Technology</a>
        </div><!-- end #logo -->
    </div><!-- end .wrap -->
</div> <!-- end header -->
<!--/htdig_noindex-->

<!--htdig_noindex-->
<div id="navigation">
    <div class="wrap">
        <ul class="clearfix">
            <li><a href="http://web.iit.edu/directory/about" target="_blank">About</a></li>
            <li><a href="http://web.iit.edu/directory/academics" target="_blank">Academics</a></li>
            <li><a href="http://admissions.iit.edu/?_ga=1.245588045.872595702.1444656867" target="_blank">Admission</a></li>
            <li><a href="http://web.iit.edu/directory/research" target="_blank">Research</a></li>
            <li><a href="http://web.iit.edu/directory/resources" target="_blank">Resources</a></li>
            <li><a href="http://admissions.iit.edu/apply/?_ga=1.53169249.872595702.1444656867" target="_blank">Apply Now</a></li>
            <li><a href="http://web.iit.edu/search/" target="_blank">Search</a></li>
            <div id="search-mobile" role="search">
                <form id="cl-search-mobile" action="/search/" class="clearfix">
                    <label for="name-mobile">Search Catalog</label>
                    <input type="text" name="search" size="25" class="searchbox" id="name-mobile" title="Search Catalog" />
                    <input type="submit" value="Search" class="submit" />
                </form>
            </div><!-- end #search-mobile -->
        </ul>
    </div><!-- end .wrap -->
</div> <!-- end navigation -->
<!--/htdig_noindex-->

<div id="content-wrapper" class="wrap clearfix">

    <div id="page-topper">
        <div id="edition">Academic Catalog <span>2019-2020</span></div>

        <div id="secondary-nav">
            <ul class="clearfix">
                <li><a href="/">Catalog Home</a></li>
                <li><a href="/programs/">Programs</a></li>
                <li><a href="/courses/">Courses A-Z</a></li>
                <li><a href="/faculty/">Faculty A-Z</a></li>
                <li><a href="/catalogcontents/">Sitemap</a></li>
                <li><a href="/archives/">Archives</a></li>
            </ul>
        </div>


    </div> <!-- end page-topper -->

    <div id="left-col">
        <!--htdig_noindex-->
        <div id="breadcrumb" class="clearfix" role="navigation">
            <ul><li><a href="/">Home</a><span class="crumbsep">/</span></li><li><a href="/courses/">Courses&nbsp;A-Z</a><span class="crumbsep">/</span></li><li><span class="active">Computer Science (CS)</span></li></ul>
        </div><!-- end #breadcrumb -->
        <!--/htdig_noindex-->

        <div id="content" role="main">
            <h1 class="page-title">Computer Science (CS)</h1>





            <div id="textcontainer" class="tab_content" role="tabpanel">

                <div class="sc_sccoursedescs">
                    <div class="courseblock">
                        <div class="courseblocktitle">
                            <div class="noindent coursecode">CS 100</div>
                            <div class="noindent coursetitle"><strong>Introduction to the Profession</strong></div>
                        </div>
                        <div class="courseblockdesc"><p class="noindent">
                            An introduction to science and engineering as a profession. Examines the problem-solving process used in engineering and science. Emphasizes the interdisciplinary and international nature of problem-solving and the need to evaluate solutions in terms of a variety of constraints: computational, financial, and social.
                        </p>
                        </div>
                        <div class="noindent courseblockattr hours">
                            <span><strong>Lecture:</strong> 1</span> <span><strong>Lab:</strong> 2</span> <span><strong>Credits:</strong> 2</span>
                        </div>
                        <div class="noindent courseblockattr">
                            <strong>Satisfies:</strong> Communications (C)
                        </div>
                    </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 104</div>
                        <div class="noindent coursetitle"><strong>Introduction to Computer Programming for Engineers</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduces the use of high-level programming language as a problem-solving tool in engineering including basic data structures and algorithms, structured programming techniques, and software documentation.  Designed for students who have had little or no prior experience with computer programming.  Students should only take one of these courses (<a href="/search/?P=CS%20104" title="CS 104" class="bubblelink code" onclick="return showCourse(this, 'CS 104');">CS 104</a>, <a href="/search/?P=CS%20105" title="CS 105" class="bubblelink code" onclick="return showCourse(this, 'CS 105');">CS 105</a>, <a href="/search/?P=CS%20115" title="CS 115" class="bubblelink code" onclick="return showCourse(this, 'CS 115');">CS 115</a>).
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 2</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 105</div>
                        <div class="noindent coursetitle"><strong>Introduction to Computer Programming</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduces the use of high-level programming language as a problem-solving tool, including basic data structures and algorithms, structured programming techniques, and software documentation. Designed for students who have had little or no prior experience with computer programming.  Students should only take one of these courses (<a href="/search/?P=CS%20104" title="CS 104" class="bubblelink code" onclick="return showCourse(this, 'CS 104');">CS 104</a>, <a href="/search/?P=CS%20105" title="CS 105" class="bubblelink code" onclick="return showCourse(this, 'CS 105');">CS 105</a>, <a href="/search/?P=CS%20115" title="CS 115" class="bubblelink code" onclick="return showCourse(this, 'CS 115');">CS 115</a>).
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 2</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 110</div>
                        <div class="noindent coursetitle"><strong>Computing Principles</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        An introduction to the following &quot;big ideas&quot; of computer science:
                        (1) computing is a creative activity; (2) abstraction reduces information and detail to facilitate focus on relevant concepts; (3) data and information facilitate the creation of knowledge; (4) algorithms are used to develop and express solutions to computational problems; (5) programming enables problem solving, human expression, and creation of knowledge; (6) the internet pervades modern computing; and  (7) computing has global impacts.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 2</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 115</div>
                        <div class="noindent coursetitle"><strong>Object-Oriented Programming I</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduces the use of a high-level object-oriented programming language as a problem-solving tool, including basic data structures and algorithms, object-oriented programming techniques, and software documentation. Designed for students who have had little or no prior experience with computer programming. For students in CS and CS-related degree programs.  Students should only take one of these courses (<a href="/search/?P=CS%20104" title="CS 104" class="bubblelink code" onclick="return showCourse(this, 'CS 104');">CS 104</a>, <a href="/search/?P=CS%20105" title="CS 105" class="bubblelink code" onclick="return showCourse(this, 'CS 105');">CS 105</a>, <a href="/search/?P=CS%20115" title="CS 115" class="bubblelink code" onclick="return showCourse(this, 'CS 115');">CS 115</a>).
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 2</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 116</div>
                        <div class="noindent coursetitle"><strong>Object-Oriented Programming II</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduces more advanced elements of object-oriented programming, including dynamic data structures, recursion, searching and sorting, and advanced object-oriented programming techniques. For students in CS and CS-related degree programs.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20115" title="CS 115" class="bubblelink code" onclick="return showCourse(this, 'CS 115');">CS 115</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 2</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 201</div>
                        <div class="noindent coursetitle"><strong>Accelerated Introduction to Computer Science</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Problem-solving and design using an object-oriented programming language. Introduces a variety of problem-solving techniques, algorithms, and data structures in object-oriented programming.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20104" title="CS 104" class="bubblelink code" onclick="return showCourse(this, 'CS 104');">CS 104</a> with min. grade of C or <a href="/search/?P=CS%20105" title="CS 105" class="bubblelink code" onclick="return showCourse(this, 'CS 105');">CS 105</a> with min. grade of C or <a href="/search/?P=CS%20110" title="CS 110" class="bubblelink code" onclick="return showCourse(this, 'CS 110');">CS 110</a> with min. grade of C or <a href="/search/?P=CS%20115" title="CS 115" class="bubblelink code" onclick="return showCourse(this, 'CS 115');">CS 115</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 2</span> <span><strong>Credits:</strong> 4</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 330</div>
                        <div class="noindent coursetitle"><strong>Discrete Structures</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to the use of formal mathematical structures to represent problems and computational processes. Topics covered include Boolean algebra, first-order logic, recursive structures, graphs, and abstract language models. Credit will not be granted for both <a href="/search/?P=CS%20330" title="CS 330" class="bubblelink code" onclick="return showCourse(this, 'CS 330');">CS 330</a> and <a href="/search/?P=MATH%20230" title="MATH 230" class="bubblelink code" onclick="return showCourse(this, 'MATH 230');">MATH 230</a>.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20201" title="CS 201" class="bubblelink code" onclick="return showCourse(this, 'CS 201');">CS 201</a> or <a href="/search/?P=CS%20116" title="CS 116" class="bubblelink code" onclick="return showCourse(this, 'CS 116');">CS 116</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 331</div>
                        <div class="noindent coursetitle"><strong>Data Structures and Algorithms</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Implementation and application of the essential data structures used in computer science. Analysis of basic sorting and searching algorithms and their relationship to these data structures. Particular emphasis is given to the use of object-oriented design and data abstraction in the creation and application of data structures.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20116" title="CS 116" class="bubblelink code" onclick="return showCourse(this, 'CS 116');">CS 116</a> or <a href="/search/?P=CS%20201" title="CS 201" class="bubblelink code" onclick="return showCourse(this, 'CS 201');">CS 201</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 340</div>
                        <div class="noindent coursetitle"><strong>Programming Paradigms and Patterns</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This class balances the imperative, object-oriented bent of the introductory programming sequence by presenting alternative programming paradigms and asks students to write complex programs from scratch while amassing a repertoire of reusable programming patterns and techniques.  Programming assignments, drawn from various domains of computer science, will highlight the importance of selecting appropriate data structures, algorithms, and techniques for the problem at hand.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20116" title="CS 116" class="bubblelink code" onclick="return showCourse(this, 'CS 116');">CS 116</a> or <a href="/search/?P=CS%20201" title="CS 201" class="bubblelink code" onclick="return showCourse(this, 'CS 201');">CS 201</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 350</div>
                        <div class="noindent coursetitle"><strong>Computer Organization and Assembly Language Programming</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to the internal architecture of computer systems, including micro-, mini-, and mainframe computer architectures. Focuses on the relationship among a computer's hardware, its native instruction set, and the implementation of high-level languages on that machine. Uses a set of assembly language programming exercises to explore and analyze a microcomputer architecture. Credit will not be granted for both <a href="/search/?P=CS%20350" title="CS 350" class="bubblelink code" onclick="return showCourse(this, 'CS 350');">CS 350</a> and <a href="/search/?P=ECE%20242" title="ECE 242" class="bubblelink code" onclick="return showCourse(this, 'ECE 242');">ECE 242</a>.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20116" title="CS 116" class="bubblelink code" onclick="return showCourse(this, 'CS 116');">CS 116</a>* or <a href="/search/?P=CS%20201" title="CS 201" class="bubblelink code" onclick="return showCourse(this, 'CS 201');">CS 201</a>*, An asterisk (*) designates a course which may be taken concurrently.
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 351</div>
                        <div class="noindent coursetitle"><strong>Systems Programming</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Examines the components of sophisticated multilayer software systems, including device drivers, systems software, applications interfaces, and user interfaces. Explores the design and development of interrupt-driven and event-driven software.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> and <a href="/search/?P=CS%20350" title="CS 350" class="bubblelink code" onclick="return showCourse(this, 'CS 350');">CS 350</a>) or (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> and <a href="/search/?P=ECE%20242" title="ECE 242" class="bubblelink code" onclick="return showCourse(this, 'ECE 242');">ECE 242</a>)
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 397</div>
                        <div class="noindent coursetitle"><strong>Special Projects</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        **Instructor permission required.**
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 401</div>
                        <div class="noindent coursetitle"><strong>Introduction to Advanced Studies I</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        First course in a two-course sequence that is designed to prepare students for graduate study in computer science.  Explores the implementation and application of fundamental data structures and algorithms with an emphasis on object-oriented programming in Java.  Examines the relationship between these elements and the mathematical structures that form the foundation of computer science.  This course does not apply toward M. S./Ph. D. credit in Computer Science.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> CS 200 or <a href="/search/?P=CS%20201" title="CS 201" class="bubblelink code" onclick="return showCourse(this, 'CS 201');">CS 201</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 2</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 402</div>
                        <div class="noindent coursetitle"><strong>Introduction to Advanced Studies II</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Second course in a two-course sequence that is designed to prepare students for graduate study in computer science. Explores the development of the multiple layers of software that form a sophisticated software system, from device drivers to application interfaces to user interfaces. Examines how computer architecture influences software development. Emphasizes the design and implementation of interrupt-driven/event-driven software.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 2</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 403</div>
                        <div class="noindent coursetitle"><strong>Foundations to Advanced Studies</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course is a six-credit hour integration of <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> and <a href="/search/?P=CS%20402" title="CS 402" class="bubblelink code" onclick="return showCourse(this, 'CS 402');">CS 402</a>. The course is an introduction to data structures but is designed to expand programming skills/concepts using software development methodology techniques. The course also provides an introduction to computer architecture and systems programming including assembly language programming, event handling and multi-threading.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 4</span> <span><strong>Lab:</strong> 4</span> <span><strong>Credits:</strong> 6</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 406</div>
                        <div class="noindent coursetitle"><strong>Introduction to Discrete Structures and Algorithms</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will provide students with an understanding of some basic discrete mathematics and techniques for designing computer algorithms and measuring and analyzing their behavior. We emphasize the necessary mathematical ideas such as how to prove a mathematical statement, how to analyze the worst case and the average case complexity of an algorithm. We also introduce students to some new techniques used in designing algorithms, such as the approximation algorithms and randomized algorithms.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 411</div>
                        <div class="noindent coursetitle"><strong>Computer Graphics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Overview of display devices and applications. Vector graphics in two and three dimensions. Image generation, representation, and manipulation. Homogeneous coordinates. Modeling and hidden line elimination. Introduction to raster graphics. Perspective and parallel projections.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 422</div>
                        <div class="noindent coursetitle"><strong>Data Mining</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will provide an introductory look at concepts and techniques in the field of data mining. After covering the introduction and terminologies to Data Mining, the techniques used to explore the large quantities of data for the discovery of meaningful rules and knowledge such as market basket analysis, nearest neighbor, decision trees, and clustering are covered. The students learn the material by implementing different techniques throughout the semester.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 425</div>
                        <div class="noindent coursetitle"><strong>Database Organization</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Overview of database architectures, including the Relational, Hierarchical, Network, and Object Models. Database interfaces, including the SQL query language. Database design using the Entity-Relationship Model. Issues such as security, integrity, and query optimization.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 429</div>
                        <div class="noindent coursetitle"><strong>Information Retrieval</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Overview of fundamental issues of information retrieval with theoretical foundations. The information-retrieval techniques and theory, covering both effectiveness and run-time performance of information-retrieval systems are covered. The focus is on algorithms and heuristics used to find documents relevant to the user request and to find them fast. The course covers the architecture and components of the search engine such as parser, stemmer, index builder, and query processor. The students learn the material by building a prototype of such a search engine. Requires strong programming knowledge.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 430</div>
                        <div class="noindent coursetitle"><strong>Introduction to Algorithms</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to the design, behavior, and analysis of computer algorithms. Searching, sorting, and combinatorial algorithms are emphasized. Worst case, amortized, and expected bounds on time and space usage.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> and <a href="/search/?P=CS%20330" title="CS 330" class="bubblelink code" onclick="return showCourse(this, 'CS 330');">CS 330</a>) or (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> and <a href="/search/?P=MATH%20230" title="MATH 230" class="bubblelink code" onclick="return showCourse(this, 'MATH 230');">MATH 230</a>) or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C), CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 440</div>
                        <div class="noindent coursetitle"><strong>Programming Languages and Translators</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Study of commonly used computer programming languages with an emphasis on precision of definition and facility in use. Scanning, parsing, and introduction to compiler design. Use of compiler generating tools.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20330" title="CS 330" class="bubblelink code" onclick="return showCourse(this, 'CS 330');">CS 330</a> and <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a>) or (<a href="/search/?P=MATH%20230" title="MATH 230" class="bubblelink code" onclick="return showCourse(this, 'MATH 230');">MATH 230</a> and <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a>) or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 442</div>
                        <div class="noindent coursetitle"><strong>Mobile Applications Development</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Students will learn a variety of software engineering techniques and design patterns to assist in the rapid development and prototyping of applications, leveraging frameworks and APIs provided by current mobile development platforms (such as Android and iOS).  Application lifecycles, data management and persistence mechanisms, and user interface design, among other topics, will be covered.  Industry speakers will be invited to speak about best practices.  Students (individually or in teams) will take ideas from concept to final implementation and will present their work at the end of the semester.  When appropriate, students may take the additional step of deploying their work on the appropriate application marketplace(s).
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a>) and (<a href="/search/?P=CS%20351" title="CS 351" class="bubblelink code" onclick="return showCourse(this, 'CS 351');">CS 351</a>* or <a href="/search/?P=CS%20402" title="CS 402" class="bubblelink code" onclick="return showCourse(this, 'CS 402');">CS 402</a>*), An asterisk (*) designates a course which may be taken concurrently.
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 443</div>
                        <div class="noindent coursetitle"><strong>Compiler Construction</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers the design and implementation of a compiler for modern languages by implementing the following:  abstract syntax trees; intermediate representations; static analysis; fix-point operations; symbol tables and type checking; and first-order and high-order function implementation.  Students will incrementally create a series of compilers.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20440" title="CS 440" class="bubblelink code" onclick="return showCourse(this, 'CS 440');">CS 440</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 445</div>
                        <div class="noindent coursetitle"><strong>Object Oriented Design and Programming</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to methodologies for object-oriented design and programming. Examines the object model and how it is realized in various object-oriented languages. Focuses on methods for developing and implementing object-oriented systems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 447</div>
                        <div class="noindent coursetitle"><strong>Distributed Objects</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course provides an introduction to architecture, analysis, design, and implementation of distributed, multi-tier applications using distributed object technology. The course focuses on the services and facilities provided by an Object Request Broker (ORB). Students will use a commercially available ORB and Database Management System to develop distributed object applications.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 450</div>
                        <div class="noindent coursetitle"><strong>Operating Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to operating system concepts-including system organization for uniprocessors and multiprocessors, scheduling algorithms, process management, deadlocks, paging and segmentation, files and protection, and process coordination and communication.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20351" title="CS 351" class="bubblelink code" onclick="return showCourse(this, 'CS 351');">CS 351</a> or (<a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> and <a href="/search/?P=CS%20402" title="CS 402" class="bubblelink code" onclick="return showCourse(this, 'CS 402');">CS 402</a>) or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 451</div>
                        <div class="noindent coursetitle"><strong>Introduction to Parallel and Distributed Computing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers general introductory concepts in the design and implementation of parallel and distributed systems covering all the major branches such as cloud computing, grid computing, cluster computing, supercomputing, and many-core computing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20351" title="CS 351" class="bubblelink code" onclick="return showCourse(this, 'CS 351');">CS 351</a> or <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 455</div>
                        <div class="noindent coursetitle"><strong>Data Communications</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to data communication concepts and facilities with an emphasis on protocols and interface specifications. Focuses on the lower four layers of the ISO-OSI reference model.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 456</div>
                        <div class="noindent coursetitle"><strong>Introduction to Wireless Networks and Performance</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This class provides an opportunity for students to obtain a fundamental understanding of the nature and operation of the full range of wireless networks (personal, local area, wide area, and satellite) and their performance characteristics, future potential, and challenges through class lectures, assigned readings, homework, projects, and various hands-on experiences.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20350" title="CS 350" class="bubblelink code" onclick="return showCourse(this, 'CS 350');">CS 350</a> or <a href="/search/?P=ECE%20242" title="ECE 242" class="bubblelink code" onclick="return showCourse(this, 'ECE 242');">ECE 242</a> or (<a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> and <a href="/search/?P=CS%20402" title="CS 402" class="bubblelink code" onclick="return showCourse(this, 'CS 402');">CS 402</a>) or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 458</div>
                        <div class="noindent coursetitle"><strong>Introduction to Information Security</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        An introduction to the fundamentals of computer and information security. This course focuses on algorithms and techniques used to defend against malicious software. Topics include an introduction to encryption systems, operating system security, database security, network security, system threats, and risk avoidance procedures.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> or <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> or <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 470</div>
                        <div class="noindent coursetitle"><strong>Computer Architecture</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to the functional elements and structures of digital computers. Detailed study of specific machines at the register transfer level illustrates arithmetic, memory, I/O and instruction processing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20350" title="CS 350" class="bubblelink code" onclick="return showCourse(this, 'CS 350');">CS 350</a> or <a href="/search/?P=ECE%20242" title="ECE 242" class="bubblelink code" onclick="return showCourse(this, 'ECE 242');">ECE 242</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 480</div>
                        <div class="noindent coursetitle"><strong>Introduction to Artificial Intelligence</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to computational methods for intelligent control of autonomous agents, and the use of programming paradigms that support development of flexible and reactive systems. These include heuristic search, knowledge representation, constraint satisfaction, probabilistic reasoning, decision-theoretic control, and sensor interpretation. Particular focus will be places on real-world application of the material.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> and <a href="/search/?P=MATH%20474" title="MATH 474" class="bubblelink code" onclick="return showCourse(this, 'MATH 474');">MATH 474</a>*) or (<a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> and <a href="/search/?P=CS%20402" title="CS 402" class="bubblelink code" onclick="return showCourse(this, 'CS 402');">CS 402</a>), An asterisk (*) designates a course which may be taken concurrently.
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 481</div>
                        <div class="noindent coursetitle"><strong>Artificial Intelligence Language Understanding</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Theory and programming paradigms that enable systems to understand human language texts and extract useful information and knowledge. For example, extraction of structured event representations from news stories or discovering new research hypotheses by analyzing thousands of medical research articles. the course covers a variety of text analysis and text mining methods, with an emphasis on building working systems. Connections to information retrieval, data mining, and speech recognition will be discussed.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>) and <a href="/search/?P=MATH%20474" title="MATH 474" class="bubblelink code" onclick="return showCourse(this, 'MATH 474');">MATH 474</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 482</div>
                        <div class="noindent coursetitle"><strong>Information and Knowledge Management Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This capstone course is designed as a project course whose purpose is to enable students to see how the various algorithms and systems they have learned about in their prerequisite courses can be used in context to create useful knowledge management tools.  Class periods will be divided among discussion of design of information and knowledge management systems, lectures on effective project management techniques, and hands-on advising of student project group meetings.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> and <a href="/search/?P=CS%20422" title="CS 422" class="bubblelink code" onclick="return showCourse(this, 'CS 422');">CS 422</a> and <a href="/search/?P=CS%20429" title="CS 429" class="bubblelink code" onclick="return showCourse(this, 'CS 429');">CS 429</a>) or (<a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> and <a href="/search/?P=CS%20422" title="CS 422" class="bubblelink code" onclick="return showCourse(this, 'CS 422');">CS 422</a> and <a href="/search/?P=CS%20481" title="CS 481" class="bubblelink code" onclick="return showCourse(this, 'CS 481');">CS 481</a>) or (<a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> and <a href="/search/?P=CS%20429" title="CS 429" class="bubblelink code" onclick="return showCourse(this, 'CS 429');">CS 429</a> and <a href="/search/?P=CS%20481" title="CS 481" class="bubblelink code" onclick="return showCourse(this, 'CS 481');">CS 481</a>)
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 485</div>
                        <div class="noindent coursetitle"><strong>Computers and Society</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Discussion of the impact of computer technology on present and future society. Historical development of the computer. Social issues raised by cybernetics.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=COM%20421" title="COM 421" class="bubblelink code" onclick="return showCourse(this, 'COM 421');">COM 421</a> or <a href="/search/?P=COM%20424" title="COM 424" class="bubblelink code" onclick="return showCourse(this, 'COM 424');">COM 424</a> or <a href="/search/?P=COM%20425" title="COM 425" class="bubblelink code" onclick="return showCourse(this, 'COM 425');">COM 425</a> or <a href="/search/?P=COM%20428" title="COM 428" class="bubblelink code" onclick="return showCourse(this, 'COM 428');">COM 428</a> or <a href="/search/?P=COM%20435" title="COM 435" class="bubblelink code" onclick="return showCourse(this, 'COM 435');">COM 435</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 487</div>
                        <div class="noindent coursetitle"><strong>Software Engineering I</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Study of the principles and practices of software engineering. Topics include software quality concepts, process models, software requirements analysis, design methodologies, software testing and software maintenance. Hands-on experience building a software system using the waterfall life cycle model. Students work in teams to develop all life cycle deliverables: requirements document, specification and design documents, system code, test plan, and user manuals.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> (<a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> or <a href="/search/?P=CS%20403" title="CS 403" class="bubblelink code" onclick="return showCourse(this, 'CS 403');">CS 403</a>) and <a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a>
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                    <div class="noindent courseblockattr">
                        <strong>Satisfies:</strong> Communications (C), CS Technical Elective (T)
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 491</div>
                        <div class="noindent coursetitle"><strong>Undergraduate Research</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        **Instructor permission required.**
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 492</div>
                        <div class="noindent coursetitle"><strong>Introduction to Computer Science Research</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Prepares undergraduate computer science majors for conducting research.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 1</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 1</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 495</div>
                        <div class="noindent coursetitle"><strong>Topics in Computer Science</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will treat a specific topic, varying from semester to semester, in which there is particular student or staff interest.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 497</div>
                        <div class="noindent coursetitle"><strong>Special Projects</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Special projects.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 511</div>
                        <div class="noindent coursetitle"><strong>Topics in Computer Graphics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Covers advanced topics in computer graphics. The exact course contents may change based on recent advances in the area and the instructor teaching it. Possible topics include: Geometric modeling, Subdivision surfaces, Procedural modeling, Warping and morphing, Model reconstruction, Image based rendering, Lighting and appearance, Texturing, Natural phenomena, Nonphotorealistic rendering Particle systems, Character animation, Physically based modeling and animation.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20411" title="CS 411" class="bubblelink code" onclick="return showCourse(this, 'CS 411');">CS 411</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 512</div>
                        <div class="noindent coursetitle"><strong>Computer Vision</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to fundamental topics in computer vision and the application of statistical estimation techniques to this area. Intended to give the student a good basis for work in this important field. Topics include: Feature extraction, Probabilistic modeling, Camera calibration, Epipolar geometry, Statistical estimation, Model reconstruction, Statistical filtering, Motion estimation, Recognition, Shape from single image cues.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 513</div>
                        <div class="noindent coursetitle"><strong>Geospatial Vision and Visualization</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Geospatial information has become ubiquitous in everyday life as evidenced by on-line mapping services such as NOKIA Here Map, Microsoft Bing Map, the &quot;place&quot; features on social network websites such as Facebook, and navigation apps on smart phones.  Behind the scenes is digital map content engineering that enables all types of location-based services.  Course material will be drawn from the instructor's research and development experience at NOKIA Location and Commerce (formerly NAVTEQ), the Chicago-based leading global provider of digital map, traffic, and location data.  This course will provide a comprehensive treatment of computer vision, image processing and visualization techniques in the context of digital mapping, global positioning and sensing, next generation map making, and three-dimensional map content creations.  Real world problems and data and on-site industry visits will comprise part of the course curriculum.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 520</div>
                        <div class="noindent coursetitle"><strong>Data Integration, Warehousing, and Provenance</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course introduces the basic concepts of data integration, data warehousing, and provenance.  We will learn how to resolve structural heterogeneity through schema matching and mapping.  The course introduces techniques for querying several heterogeneous datasources at once (data integration) and translating data between databases with different data representations (data exchange).  Furthermore, we will cover the data-warehouse paradigm including the Extract-Transform-Load (ETL) process, the data cube model and its relational representations (such as snowflake and star schema), and efficient processing of analytical queries.  This will be contrasted with Big Data analytics approaches that (besides other differences) significantly reduce the upfront cost of analytics.  When feeding data through complex processing pipelines such as data exchange transformations or ETL workflows, it is easy to lose track of the origin of data. Therefore, in the last part of the course we cover techniques for representing and keeping track of the origin and creation process of data (its provenance).

                        The course emphasizespractical skills through a series of homework assignments that help students develop a strong background in data integration systems and techniques.  At the same time, it also addresses the underlying formalisms.  For example, we will discuss the logic based languages used for schema mapping and the dimensional data model as well as their practical application (e.g., developing an ETL workflow with rapid miner and creating a mapping between two example schemata).  The literature reviews will familiarize students with data integration and provenance research.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 521</div>
                        <div class="noindent coursetitle"><strong>Object-Oriented Analysis and Design</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course describes a methodology that covers a wide range of software engineering techniques used in system analysis, modeling and design. These techniques integrate well with software process management techniques and provide a framework for software engineers to collaborate in the design and development process. The methodology features the integration of concepts, including software reusability, frame works, design patterns, software architecture, software component design, use-case analysis, event-flow analysis, event-message analysis, behavioral-life cycle analysis, feature, multiple-product, risk and rule analysis, and automatic code generation. (Credit will not be given for <a href="/search/?P=CS%20521" title="CS 521" class="bubblelink code" onclick="return showCourse(this, 'CS 521');">CS 521</a> if CS751 is taken)
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20445" title="CS 445" class="bubblelink code" onclick="return showCourse(this, 'CS 445');">CS 445</a> with min. grade of C or <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 522</div>
                        <div class="noindent coursetitle"><strong>Advanced Data Mining</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Continued exploration of data mining algorithms. More sophisticated algorithms such as support vector machines will be studied in detail. Students will continuously study new contributions to the field. A large project will be required that encourages students to push the limits of existing data mining techniques.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20422" title="CS 422" class="bubblelink code" onclick="return showCourse(this, 'CS 422');">CS 422</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 525</div>
                        <div class="noindent coursetitle"><strong>Advanced Database Organization</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Comprehensive coverage of the problems involved in database system implementation and an in-depth examination of contemporary structures and techniques used in modern database management systems. Teaches advanced skills appropriate for DBMS architects and developers , database specialist, and the designers and developers of client/server and distributed systems. Focus is on transaction management, database structures and distributed processing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20425" title="CS 425" class="bubblelink code" onclick="return showCourse(this, 'CS 425');">CS 425</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 528</div>
                        <div class="noindent coursetitle"><strong>Data Privacy and Security</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        New technologies have increasingly enabled corporations and governments to collect, analyze and share huge amount of data related to individuals. Today, the challenge is enabling the legitimate use of the collected data without violating privacy and security. In this course, we are going to analyze the fundamental models of ensuring data privacy and security, and explore potential theoretical models, algorithms, and technologies that can enhance data privacy and security in different contexts, such as market basket, search engine, location-based services, social network, cloud computing, cryptocurrencies, and smart grid. We will also design and implement different techniques (e.g., cryptographic protocols, secure computation, and data sanitization) as well as examine their performance in terms of three critical properties (privacy/security, utility and efficiency).
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 529</div>
                        <div class="noindent coursetitle"><strong>Information Retrieval</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        The course covers the advanced topics in Information Retrieval. The topics such as Summarization, cross-lingual, Meta-Search, Question Answering, Parallel and distributed IR systems are discussed. The students get involved in research ideas, and get involved in individual and group projects.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20429" title="CS 429" class="bubblelink code" onclick="return showCourse(this, 'CS 429');">CS 429</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 530</div>
                        <div class="noindent coursetitle"><strong>Theory of Computation</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Computability topics such as Turing machines, nondeterministic machines, undecidability, and reducibility. Computational complexity topics such as time complexity, NP-completeness and intractability, time and space hierarchy theorems. Introduces the complexity classes P, NP, NL, L, PSPACE, NC, RNC, BPP and their complete problems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 531</div>
                        <div class="noindent coursetitle"><strong>Topics in Automata Theory</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Topics selected from mathematical systems and automata theory, decision problems, realization and minimization, algebraic decomposition theory and machines in a category.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 532</div>
                        <div class="noindent coursetitle"><strong>Formal Languages</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course provides an introduction to the theory of formal languages and machines. Topics to be covered include: strings, alphabets, and languages; grammars, the Chomsky Hierarchy of languages and corresponding machines (regular sets and finite automata, context free languages of various types, Turing machines and recursive functions, undecidable problems), and computational complexity, polynomial-time reductions, NP-completeness.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 533</div>
                        <div class="noindent coursetitle"><strong>Computational Geometry</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers fundamental algorithms and data structures for convex hulls, Voronoi diagrams, Delauney triangulation, Euclidean spanning trees, point location, and range searching. Also included are lower bounds and discrepancy theory. Optimization in geometry will be covered. This includes fixed dimensional linear programming and shortest paths. Graphic data structures such as BSP trees will be covered.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 535</div>
                        <div class="noindent coursetitle"><strong>Design and Analysis of Algorithms</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Design of efficient algorithms for a variety of problems, with mathematical proof of correctness and analysis of time and space requirements. Topics include lower bounds for sorting and medians, amortized analysis of advanced data structures, graph algorithms (strongly connected components, shortest paths, minimum spanning trees, maximum flows and bipartite matching) and NP-Completeness.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 536</div>
                        <div class="noindent coursetitle"><strong>Science of Programming</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Formal specification of how programs execute operational semantics , how mathematical functions programs compute denotational semantics , and how to use logic to characterize properties and invariants of the program execution (axiomatic semantics).
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20331" title="CS 331" class="bubblelink code" onclick="return showCourse(this, 'CS 331');">CS 331</a> with min. grade of C or <a href="/search/?P=CS%20401" title="CS 401" class="bubblelink code" onclick="return showCourse(this, 'CS 401');">CS 401</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 537</div>
                        <div class="noindent coursetitle"><strong>Software Metrics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Theoretical foundations for software metrics. Data collection. Experimental design and analysis. Software metric validation. Measuring the software development and maintenance process. Measuring software systems. Support for metrics. Statistical tools. Setting up a measurement program. Application of software measurement.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 538</div>
                        <div class="noindent coursetitle"><strong>Combinatorial Optimization</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Linear programs and their properties. Efficient algorithms for linear programming. Network flows, minimum cost flows, maximum matching, weighted matching, matroids.Prerequisite:<a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> and a linear algebra course.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 539</div>
                        <div class="noindent coursetitle"><strong>Game Theory:  Algorithms and Applications</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course focuses on computational issues in the theory of games, economics, and network design.  Interest in the algorithmic aspects of games is motivated by the computational issues of fundamental aspects of games and economic theory, e.g. Nash equilibrium and market equilibrium.  Computing and approximating Nash equilibrium will be studied.  Of considerable interest to the computer science community are problems that arise from the Internet and computer networks and are similar to issues that arise in traditional transport networks, e.g. Wardrop equilibrium.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C or <a href="/search/?P=CS%20530" title="CS 530" class="bubblelink code" onclick="return showCourse(this, 'CS 530');">CS 530</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 540</div>
                        <div class="noindent coursetitle"><strong>Syntactic Analysis of Programming Languages</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Formal definition of syntax with emphasis on context-free languages. Elementary techniques for scanning and parsing programming languages. Symbol table management. Semantic routines and code generation. The class will write a simple translator.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20440" title="CS 440" class="bubblelink code" onclick="return showCourse(this, 'CS 440');">CS 440</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 541</div>
                        <div class="noindent coursetitle"><strong>Topics in Compiler Construction</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Advanced topics in compiler construction, including incremental and interactive compiling, error correction, code optimization, models of code generators, etc. The objective of the course is to provide an in-depth coverage of compiler optimization techniques, including both classical optimization and areas of current interest in compiler research.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20440" title="CS 440" class="bubblelink code" onclick="return showCourse(this, 'CS 440');">CS 440</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 542</div>
                        <div class="noindent coursetitle"><strong>Computer Networks I:  Fundamentals</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course focuses on the engineering and analysis of network protocols and architecture in terms of the Internet. Topics include content distribution, peer-to-peer networking, congestion control, unicast and multicast routing, router design, mobility, multimedia networking quality of service, security and policy-based networking.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 544</div>
                        <div class="noindent coursetitle"><strong>Computer Networks II: Network Services</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Qualitative and quantitative analysis of networks. A combination of analytical and experimental analysis techniques will be used to study topics such as protocol delay, end-to-end network response time, intranet models, Internet traffic models, web services availability, and network management.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20542" title="CS 542" class="bubblelink code" onclick="return showCourse(this, 'CS 542');">CS 542</a> with min. grade of C or <a href="/search/?P=ECE%20545" title="ECE 545" class="bubblelink code" onclick="return showCourse(this, 'ECE 545');">ECE 545</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 545</div>
                        <div class="noindent coursetitle"><strong>Distributed Computing Landscape</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to the theory of concurrent programming languages. Topics include formal models of concurrent computation such as process algebras, nets, and actors; high-level concurrent programming languages and their operational semantics; and methods for reasoning about correctness and complexity of concurrent programs.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 546</div>
                        <div class="noindent coursetitle"><strong>Parallel and Distributed Processing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers general issues of parallel and distributed processing from a user's point of view which includes system architectures, programming, performance evaluation, applications, and the influence of communication and parallelism on algorithm design.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C and <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 547</div>
                        <div class="noindent coursetitle"><strong>Wireless Networking</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course introduces cellular/PCS systems, short-range mobile wireless systems, fixed wireless systems, satellites, and ad hoc wireless systems.  It explains in detail the underlying technology as well as regulations, politics, and business of these wireless communications systems.  It looks beyond the hype, examining just what is and is not possible with present-day and future wireless systems.  As an advanced graduate course, it will combine extensive reading and in-class discussion of the research literature with in-depth independent research projects of students' own choosing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 548</div>
                        <div class="noindent coursetitle"><strong>High-Speed Networks</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        The course studies the architectures, interfaces, protocols, technologies, products and services for broadband (high-speed) multimedia networks. The key principles of the protocols and technologies used for representative network elements and types of broadband network are studied. Specifically, cable modems, Digital Subscriber Lines, Power Lines, wireless 802.16 (WiMax), and broadband cellular Internet are covered for broadband access; for broadband Local Area Networks (LANs), Gigabit Ethernet, Virtual LANs and wireless LANs (802.11 WiFi and Bluetooth) are discussed; for broadband Wide Area Networks (WANs) the topics covered include optical networks (SONET/SDH,DWDM, optical network nodes, optical network nodes, optical switching technologies), frame-relay, ATM, wire-speed routers, IP switching, and MPLS. Also, quality of service issues in broadband networks and a view of the convergence of technologies in broadband networks are covered.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 549</div>
                        <div class="noindent coursetitle"><strong>Cryptography</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Cryptography provides foundations for ensuring the confidentiality, authenticity, integrity and privacy of the increasing sensitive information in digital world.  It
                        is a theoretical field that relies on a diverse and wide variety of mathematics.  The topics in this course include encryption, message authentication codes, digital signatures, public key crypto-systems, key exchange, identification protocols, zero-knowledge proof systems, etc.  The goal of this course is to help students develop a solid understanding of the fundamentals of security and become familiar with the theories of cryptography as well as the role of cryptography in the recent and emerging applications.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 550</div>
                        <div class="noindent coursetitle"><strong>Advanced Operating Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Advanced operating system design concepts such as interprocess communication, distributed processing, replication and consistency, fault tolerance, synchronization, file systems.  Study of systems highlighting these concepts.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 551</div>
                        <div class="noindent coursetitle"><strong>Operating System Design and Implementation</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers in detail the design and implementation of processes, interprocess communication, semaphores, monitors, message passing, scheduling algorithm, input/output, device drivers, memory management, file system design, security and protection mechanisms.  The hardware-software interface and the user process-system call-kernel interface are examined in detail.  Students modify and extend a multiuser operating system.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 552</div>
                        <div class="noindent coursetitle"><strong>Distributed Real-Time Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        With the advancement of computer hardware, embedded devices, and network technology, real-time applications have become pervasive, ranging from smart automobiles to automated traffic control.  Different from general-purpose applications, correct executions of real-time applications depend on both functional correctness and temporal correctness.  This course is to study the fundamentals of distributed real-time computing with the focus on its temporal aspects.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 553</div>
                        <div class="noindent coursetitle"><strong>Cloud Computing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course is a tour through various topics and technologies related to cloud computing.  Students will explore solutions and learn design principles for building large network-based systems to support both compute-intensive and data-intensive applications across geographically distributed infrastructure.  Topics include resource management, programming models, application models, system characterizations, and implementations.  Discussions will often be grounded in the context of deployed cloud computing systems such as Amazon EC2 and S3, Microsoft Azure, Google AppEngine, Eucalyptus, Nimbus, OpenStack, Google's MapReduce, Yahoo's Hadoop, Microsoft's Dryad, Sphere/Sector, and many other systems.  The course involves lectures, outside invited speakers, discussions of research papers, programming assignments, and a major project (including both a written report and an oral presentation).
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C or <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 554</div>
                        <div class="noindent coursetitle"><strong>Data-Intensive Computing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course is a tour through various research topics in distributed data-intensive computing, covering topics in cluster computing, grid computing, supercomputing, and cloud computing.  The course will explore solutions and learn design principles for building large network-based computational systems to support data-intensive computing.  This course is geared for junior/senior-level undergraduates and graduate students in computer science.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 555</div>
                        <div class="noindent coursetitle"><strong>Analytic Models and Simulation of Computer Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Analytic and simulation techniques for the performance analysis of computer architecture, operating systems and communication networks. Rigorous development of queuing models. Study of simulation languages and models.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 556</div>
                        <div class="noindent coursetitle"><strong>Cyber-Physical Systems:  Languages and Systems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Different from general-purpose and traditional computer applications, cyber-physical systems have both continuous and discrete components, hence requiring new methodologies to integrate traditional continuous control theory/systems with traditional discrete software systems.  The focus of this course is to discuss and understand the challenges in emerging cyber-physical systems and to explore possible solutions from the perspectives of systems specification, system modeling, programming languages, systems designs, and software engineering.  This course will focus on the languages and systems aspects of cyber-physical systems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 557</div>
                        <div class="noindent coursetitle"><strong>Cyber-Physical Systems Security and Design</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Cyber-physical systems (CPS) are engineered systems that are built from, and depend upon, the seamless integration of computation and physical components.  CPS can form a unifying modeling framework for many different scientific and engineering problems.  Examples include, but are not limited to, internet of things (IoT), building design, civil infrastructure, energy, healthcare and personalized medicine, manufacturing, and transportation.  This course will teach various topics in cyber-physical systems security.  The goal is to expose students to fundamental security principles specific to cyber-physical systems and to apply them to a broad range of current and future security challenges.  Students will work with various tools and techniques used by hackers to compromise computer systems or otherwise interfere with normal operations.  Students will undertake a semester-long research project with the goal of technical publications.  Lecture topics will include, but not limited to:

                        1.  Introduction to Cyber-Physical Systems
                        2.  Control Systems and Operations
                        3.  Cyber-Physical System Security History and Threats
                        4.  Cyber-Physical System Design and Architecture
                        5.  Critical infrastructure protection (e.g., Power Systems)
                        6.  Security in Cyber-Physical Systems
                        7.  Cyber-Resilience in Cyber-Physical Systems
                        8.  Privacy in Cyber-Physical Systems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C or <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C or <a href="/search/?P=CS%20458" title="CS 458" class="bubblelink code" onclick="return showCourse(this, 'CS 458');">CS 458</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 558</div>
                        <div class="noindent coursetitle"><strong>Advanced Computer Security</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will teach various modern topics in network and computer security.  It will provide a thorough grounding in cyber-security for students who are interested in conducting research on security and networking and for students who are more broadly interested in real-world security issues and techniques.  Students will undertake a semester-long research project with the goal of technical publications.  Lecture topics will include, but not limited to:  (1) Unwanted traffic, such as denial of service (DoS), and spam; (2) Malware, such as botnet, worm, and virus; (3) Network configuration and defense, such as firewall, access control, and intrusion detection systems; (4) Cyber physical system security, such as critical infrastructure protection (e.g., smart grid); and (5) Hot topics, such as software-defined networking (SDN), network verification, data center and enterprise network security, web security and more.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C or <a href="/search/?P=CS%20455" title="CS 455" class="bubblelink code" onclick="return showCourse(this, 'CS 455');">CS 455</a> with min. grade of C or <a href="/search/?P=CS%20458" title="CS 458" class="bubblelink code" onclick="return showCourse(this, 'CS 458');">CS 458</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 559</div>
                        <div class="noindent coursetitle"><strong>Biometrics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        In a security conscious society, biometrics-based authentication and identification have become a central focus for many important applications as biometrics can provide accurate and reliable identification.  Biometrics research and technology continue to mature rapidly, driven by pressing industrial and government needs and supported by industrial and government funding.  This course offers an introduction to major biometric techniques, the underlying pattern recognition and computer vision basis for these biometrics, scientific testing and evaluation methodologies of biometrics systems, a deeper study of facial recognition, and an examination of the current privacy and social/ethical issues surrounding the technology.  The course includes readings from the literature, short writing assignments, and practical experience with current biometric technology. Prerequisite working knowledge of Matlab or C/C++ is necessary.

                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 560</div>
                        <div class="noindent coursetitle"><strong>Computer Science in the Classroom</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Emphasis on how to organize a selected computer science course.  Discussion of what to teach, the problems typically encountered in teaching, and how to best organize the concepts in a computer science course.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 561</div>
                        <div class="noindent coursetitle"><strong>The Computer and Curriculum Content</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Presentation techniques from white board to web-based instructional units using currently available software.  Emphasis on incorporating the computer as a teaching tool in the presentation of class material.  Single Concept Learning Modules (SCLM) are developed.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 562</div>
                        <div class="noindent coursetitle"><strong>Virtual Machines</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This is an advanced systems course which introduces the internals of modern virtualization software and hardware, from full system emulators, binary translators, and high-level language virtual machines to hypervisors, lightweight virtualization mechanisms such as containers, and hardware virtualization extensions.  Students will learn the key abstractions and mechanisms that underly resource virtualization by building significant components of real-world systems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C or <a href="/search/?P=CS%20551" title="CS 551" class="bubblelink code" onclick="return showCourse(this, 'CS 551');">CS 551</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 565</div>
                        <div class="noindent coursetitle"><strong>Computer Assisted Instruction</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Hardware and software for the effective use of the computer in an educational environment, CAI (Computer-Assisted/Aided Instruction) being one of the major areas of investigation .
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20560" title="CS 560" class="bubblelink code" onclick="return showCourse(this, 'CS 560');">CS 560</a> with min. grade of C or <a href="/search/?P=CS%20561" title="CS 561" class="bubblelink code" onclick="return showCourse(this, 'CS 561');">CS 561</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 566</div>
                        <div class="noindent coursetitle"><strong>Practicum in the Application of Computers to Education</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Provides supervised experience in the development of computer-based teaching units.  Evaluation of different theoretical and/or technical approaches to the use of computer in the classroom.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20561" title="CS 561" class="bubblelink code" onclick="return showCourse(this, 'CS 561');">CS 561</a> with min. grade of C and <a href="/search/?P=CS%20560" title="CS 560" class="bubblelink code" onclick="return showCourse(this, 'CS 560');">CS 560</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 1</span> <span><strong>Lab:</strong> 4</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 570</div>
                        <div class="noindent coursetitle"><strong>Advanced Computer Architecture</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Computer system design and architecture such as pipelining and instruction-level parallelism, memory-hierarchy system, interconnection networks, multicore and multiprocessors, and storage architecture.  Selected study on current experimental computer systems.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20470" title="CS 470" class="bubblelink code" onclick="return showCourse(this, 'CS 470');">CS 470</a> with min. grade of C and <a href="/search/?P=CS%20450" title="CS 450" class="bubblelink code" onclick="return showCourse(this, 'CS 450');">CS 450</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 572</div>
                        <div class="noindent coursetitle"><strong>Advanced Topics in Computer Architecture</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Current problems in computer architecture.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20570" title="CS 570" class="bubblelink code" onclick="return showCourse(this, 'CS 570');">CS 570</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 577</div>
                        <div class="noindent coursetitle"><strong>Deep Learning</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Deep neural networks form an important sub-field of machine learning that is responsible for much of the progress in in cognitive computing in recent years in areas of computer vision, audio processing, and natural language processing. Deep networks can be trained with a single end-to-end model and  bypass the need for traditional task-specific feature engineering. In this way deep learning simplifies learning tasks and allows using developed models to new tasks. Deep networks are suitable for parallel processing implementations and can easily leverage intensive computational resources. The course will focus on mathematical concepts, numerical algorithms, principles, GPU frameworks, and applications of deep learning. Topics include deep feedforward networks, convolutional networks, sequence modeling, and deep generative models with applications to data analysis, computer vision, and natural language processing. Several programming assignments and a project will practice the application of deep learning techniques to actual problems. The course requires sufficient math and programming background but does not require prior knowledge in machine learning.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 578</div>
                        <div class="noindent coursetitle"><strong>Interactive and Transparent Machine Learning</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will discuss how we can enable humans and machine learning systems to interact and collaborate for more effective and accurate decision making.  Topics include, but are not limited to, expert systems, recommender systems, active learning, crowdsourcing, learning with rationales, interactive machine learning, and transparency.  Students are expected to delve deep into the assumptions, mathematical formulations, and algorithmic optimizations of various machine learning algorithms, read several academic papers, analyze numerous datasets, inspect implicit and explicit biases present in the analytical processes, and build an interactive and transparent machine learning system.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C and <a href="/search/?P=CS%20422" title="CS 422" class="bubblelink code" onclick="return showCourse(this, 'CS 422');">CS 422</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 579</div>
                        <div class="noindent coursetitle"><strong>Online Social Network Analysis</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will explore the latest algorithms for analyzing online social networks, considering both their structure and content.  Fundamentals of social graph theory will be covered including distance, search, influence, community discovery, diffusion, and graph dynamics.  Fundamentals of text analysis will also be covered with an emphasis on the type of text used in online social networks and common applications.  Topics include sentiment classification, information extraction, clustering, and topic modeling.  Emphasis will be placed on the application of this technology to areas such as public health, crisis response, politics, and marketing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 580</div>
                        <div class="noindent coursetitle"><strong>Topics in Machine Learning</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers advanced topics in machine learning.  The exact course contents may change based on recent advances in the area and the instructor teaching it.  Possible topics include active learning, reinforcement learning, online learning, non-parametric learning, inductive learning, statistical relational learning, dimensionality reduction, ensemble methods, transfer learning, outlier detection, specific application areas of machine learning, and other relevant and/or emerging topics.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 581</div>
                        <div class="noindent coursetitle"><strong>Advanced Artificial Intelligence</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Covers various advanced topics in AI, including both theory and practice. Content may vary by instructor. Possible topics include: Planning: STRIPs planning; Partial-order planning; Situation calculus; Theorem proving; GraphPlan/SatPlan; Transformational planning; Simulated annealing; Motion planning; Case-based reasoning; Multi-agent coordination; Negotiation planning; Representation and Reasoning: Logical representation; Frame problem; Probabilistic reasoning; Bayesian networks; Game Playing: Minimax search; Evaluation functions; Learning evaluation functions; Markov Decision Processes; Reinforcement learning for games; Developing AI agents; Multi-agent planning.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20480" title="CS 480" class="bubblelink code" onclick="return showCourse(this, 'CS 480');">CS 480</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 582</div>
                        <div class="noindent coursetitle"><strong>Computational Robotics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Covers basic algorithms and techniques used in Computational Robotics, to give the student a good basis for work in this highly relevant field. Topics include: Locomotion, Non-visual sensors and algorithms, Uncertainty modeling, data fusion, State space models, Kalman filtering, Visual sensor, Sampling theory, Image features, Depth reconstruction, Multiple view geometry, Ego-motion, Active vision, Reasoning, Spatial decomposition, Geometric representations, Topological representations, Path planning, Spatial uncertainty, Active control, Pose maintenance, Dead reckoning, Correlation-based localization, Sensorial maps, Task planning and task interference, Multi-agent coordination.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 583</div>
                        <div class="noindent coursetitle"><strong>Probabilistic Graphical Models</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will cover probabilistic graphical models -- powerful and interpretable models for reasoning under uncertainty.  The generic families of models such as directed, undirected, and factor graphs as well as specific representations such as hidden Markov models and conditional random fields will be discussed.  The discussions will include both the theoretical aspects of representation, learning, and inference, and their applications in many interesting fields such as computer vision, natural language processing, computational biology, and medical diagnosis.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 584</div>
                        <div class="noindent coursetitle"><strong>Machine Learning</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduce fundamental problems in machine learning.  Provide understanding of techniques, mathematical concepts, and algorithms used in machine learning.  Provide understanding of the limitations of various machine learning algorithms and the way to evaluate performance of learning algorithms.  Topics include introduction, regression, kernel methods, generative learning, discriminative learning, neural networks, support vector machines, graphical models, unsupervised learning, and dimensionality reduction.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 585</div>
                        <div class="noindent coursetitle"><strong>Natural Language Processing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        An introduction to the problems of computing with human languages. Parsing. Semantic representations. Text generation. Lexicography. Discourse. Sublanguage studies. Applications to CAI, database interfaces and information retrieval.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 586</div>
                        <div class="noindent coursetitle"><strong>Software Systems Architectures</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course covers the state-of-the-art in architectural design of complex software systems. The course considers commonly-used software system architectures, techniques for designing and implementing these architectures, models and notations for characterizing and reasoning about architectures, and case studies of actual software system architectures.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 587</div>
                        <div class="noindent coursetitle"><strong>Software Project Management</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Concepts of software product and process quality. Role of TQM in software project management. Use of metrics, feasibility studies, cost and effort estimates. Discussion of project planning and scheduling. The project team and leadership issues. The Capability Maturity Model: basic tenets and application of process evaluation.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 588</div>
                        <div class="noindent coursetitle"><strong>Advanced Software Engineering Development</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Software development process improvement is a major objective of this course. This is achieved through a series of individual programming and process projects. Students learn to plan their projects, apply measurements, estimate size, schedule tasks, and classify defects in order to improve the quality of both their development process and their software products.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 589</div>
                        <div class="noindent coursetitle"><strong>Software Testing and Analysis</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Concepts and techniques for testing and analysis of software. Software testing at the unit, subsystem, and system levels. Specification-based testing. Code-based testing. Model-based testing. Methods for test generation and validation. Static and dynamic analysis. Formal methods and verification. Reliability analysis.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 590</div>
                        <div class="noindent coursetitle"><strong>Seminar in Computer Science</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Investigation and discussion by faculty and students concentrated on some topic of current interest. May be taken more than once.  Prerequisite: Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 0</span> <span><strong>Lab:</strong> 3</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 591</div>
                        <div class="noindent coursetitle"><strong>Research and Thesis of Masters Degree</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 594</div>
                        <div class="noindent coursetitle"><strong>Research Problems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 595</div>
                        <div class="noindent coursetitle"><strong>Topics in Computer Science</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will treat a specific topic, varying from semester to semester, in which there is a particular student or staff interest. May be taken more than once.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 597</div>
                        <div class="noindent coursetitle"><strong>Reading and Special Problems</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        May be taken more than once. (Credit: Variable)  Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 612</div>
                        <div class="noindent coursetitle"><strong>Topics in Computer Vision</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Covers advanced topics in computer vision to enhance knowledge of students interested in this highly important area. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Image based modeling and rendering, Multiple view geometry, Auto-calibration, Object recognition, Motion analysis, Tracking, Perceptual user interfaces, Face and gesture recognition, Active vision.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20512" title="CS 512" class="bubblelink code" onclick="return showCourse(this, 'CS 512');">CS 512</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 0</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 630</div>
                        <div class="noindent coursetitle"><strong>Advanced Topics in Algorithms</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Theoretical analysis of various types of algorithms. Topics vary, and may include approximation, quantum, on-line, distributed, randomized, and parallel algorithms.  Requires <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a>. Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20430" title="CS 430" class="bubblelink code" onclick="return showCourse(this, 'CS 430');">CS 430</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 642</div>
                        <div class="noindent coursetitle"><strong>Advanced Topics in Networking</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Introduction to advanced networking research. A particular focus area will be considered, keeping current with advances in computer networking. Quantitative methods will be emphasized.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20542" title="CS 542" class="bubblelink code" onclick="return showCourse(this, 'CS 542');">CS 542</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 681</div>
                        <div class="noindent coursetitle"><strong>Topics in Computational Linguistics</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        <a href="/search/?P=CS%20585" title="CS 585" class="bubblelink code" onclick="return showCourse(this, 'CS 585');">CS 585</a> Covers various topics in linguistics as they may be applied to various computational problems in AI, NLP, or IR. The topics in this course may change between semesters depending on the instructor teaching the course and the current state of the art in this area. Possible topics include: Systemic Functional Linguistics, Clausal structure, Group structure, Complex structure, Cognitive Linguistics, Process semantics.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20585" title="CS 585" class="bubblelink code" onclick="return showCourse(this, 'CS 585');">CS 585</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 689</div>
                        <div class="noindent coursetitle"><strong>Advanced Topics in Software Engineering</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Course content is variable and reflects the current trends in software engineering.  Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 3</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 3</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 691</div>
                        <div class="noindent coursetitle"><strong>Research and Thesis Ph.D.</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Instructor permission required.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Credit:</strong> Variable</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 695</div>
                        <div class="noindent coursetitle"><strong>Doctoral Seminar</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        Doctoral seminar.
                    </p>
                    </div>
                    <div class="noindent courseblockattr hours">
                        <span><strong>Lecture:</strong> 0</span> <span><strong>Lab:</strong> 1</span> <span><strong>Credits:</strong> 1</span>
                    </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 750</div>
                        <div class="noindent coursetitle"><strong>Computer Aided Software Engineering</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course presents the state-of-the-art of computer-aided software engineering technologies. CASE encompasses a collection of automated tools and methods that provide automated support to the software specification, design, development, testing, maintenance, and management of large and complex software systems. Students will develop working understanding of CASE methodologies and tools.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 2</span>
                </div>
                </div><div class="courseblock">
                    <div class="courseblocktitle">
                        <div class="noindent coursecode">CS 763</div>
                        <div class="noindent coursetitle"><strong>Automated Software Testing</strong></div>
                    </div>
                    <div class="courseblockdesc"><p class="noindent">
                        This course will examine both the state-of-the-art and the state-of-practice in automated software testing on a system level and an unit level. Relevant issues include theoretical foundations of automated testing, automation tools and techniques, empirical studies and industrial experience. Key topics include, but are not limited to: Fundamentals of automated software testing, automated test design, modeling and generation, automated test execution, automated test management, automated test metrics, automated tools, automated feature and regression testing Environments to support cost-effective automated software testing, discussions on the barriers to industrial use of automated testing.
                    </p>
                    </div>
                    <div class="noindent courseblockattr">
                        <strong>Prerequisite(s):</strong> <a href="/search/?P=CS%20487" title="CS 487" class="bubblelink code" onclick="return showCourse(this, 'CS 487');">CS 487</a> with min. grade of C
                    </div><div class="noindent courseblockattr hours">
                    <span><strong>Lecture:</strong> 2</span> <span><strong>Lab:</strong> 0</span> <span><strong>Credits:</strong> 2</span>
                </div>
                </div></div></div><!--end #textcontainer -->

        </div><!-- end #content -->
    </div> <!-- end left-col -->

    <div id="right-col">
        <div id="sidebar">
            <div id="search" role="search">
                <form id="cl-search" action="/search/" class="clearfix">
                    <label for="name">Search Catalog</label>
                    <input type="text" name="search" size="25" placeholder="Search catalog" class="searchbox" id="name" title="Search Catalog" />
                    <input type="submit" value="Search" class="submit" />
                </form>
            </div><!-- end #search -->

            <!-- Begin Nav -->
            <div id="cl-menu">
                <ul class="nav levelzero" id="/">
                    <li class="isparent"><a href="/undergraduate/">Undergraduate</a></li>
                    <li class="isparent"><a href="/graduate/">Graduate</a></li>
                </ul>
            </div>
            <!-- End Nav -->

            <a href="#print-dialog" id="print-btn" onclick="showPrintDialog(); return false;">Print Options</a>
        </div> <!-- end sidebar -->
    </div> <!-- end right-col -->

</div> <!-- content-wrapper -->


<!--htdig_noindex-->
<div id="footer" role="contentinfo">
    <div class="wrap clearfix">
        <div id="foot-logo"><img src="/images/foot-logo.png" alt="Illinois Institute of Technology" /></div>
        <div id="foot-address">
            <strong>Illinois Institute of Technology</strong><br/>
            10 West 35th Street<br/>
            Chicago, IL 60616<br/>
            312.567.3000
        </div>
        <div id="foot-right">
            <a href="http://web.iit.edu/directory/social-media" target="_blank">Illinois Tech Social Media Directory</a>
            <a href="http://web.iit.edu/contact-us" target="_blank">Contact Us</a>
            <a href="http://web.iit.edu/emergency" target="_blank" class="red">Emergency Information</a>
        </div>
    </div>
</div><!-- end #footer -->
<!--/htdig_noindex-->

<a href="#header" id="totop">Back to Top</a>

<div id="print-dialog" class="screen noscript" role="dialog">
    <div class="print-header">
        Print Options
    </div>
    <div class="print-body">
        <div class="print-option">
            <div class="option-head">
                <a href="#" onclick="hidePrintDialog();window.print();return false;">Send Page to Printer</a>
            </div>
            <p>
                <em>Print this page.</em>
            </p>
        </div>


        <div class="print-option"><div class="option-head"><a href="cs.pdf" target="_blank">Download PDF of this page</a></div><p><em>The PDF will include all information unique to this page.</em></p></div>

        <div class="print-option">
            <div class="option-head">
                <a href="/pdf/2019-20ugrad.pdf">Download PDF of the entire 2019-2020 Undergraduate Catalog</a>
            </div>
            <p>
                <em>All pages in the Undergraduate Catalog.</em>
            </p>
        </div>

        <div class="print-option">
            <div class="option-head">
                <a href="/pdf/2019-20grad.pdf">Download PDF of the entire 2019-2020 Graduate Catalog</a>
            </div>
            <p>
                <em>All pages in the Graduate Catalog.</em>
            </p>
        </div>

    </div>
    <div class="buttons clearfix">
        <div class="cancel">
            <a href="#" onclick="hidePrintDialog(); return false;">Cancel</a>
        </div>
    </div>
</div>

</body>
</html>
